Skip to content

Conversation

@janhoy
Copy link
Contributor

@janhoy janhoy commented Jan 7, 2026

Separates out new solr-solrj module and moves the jetty specific classes from solrj.

Needed to generalize ConcurrentUpdateBaseSolrClient, and Claude Code chose to do that by abstracting out a new StreamingResponse class.

I did NOT implement a ConcurrentUpdateJdkSolrClient in this PR, although it should be possible based on the new generic base class...

https://issues.apache.org/jira/browse/SOLR-17161

@janhoy janhoy marked this pull request as draft January 7, 2026 14:44
@janhoy janhoy requested a review from dsmiley January 7, 2026 14:48
@janhoy
Copy link
Contributor Author

janhoy commented Jan 7, 2026

This is the dependency:tree for org.apache.solr:solr-solrj before this change:

org.example:testsolrj:jar:1.0-SNAPSHOT
\- org.apache.solr:solr-solrj:jar:11.0.0-SNAPSHOT:compile
   +- org.apache.solr:solr-api:jar:11.0.0-SNAPSHOT:compile
   |  +- io.swagger.core.v3:swagger-annotations-jakarta:jar:2.2.22:compile
   |  +- jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0:runtime
   |  \- org.semver4j:semver4j:jar:6.0.0:runtime
   |     \- org.jspecify:jspecify:jar:1.0.0:runtime
   +- org.eclipse.jetty.http2:jetty-http2-client:jar:12.0.27:compile
   |  +- org.eclipse.jetty:jetty-alpn-client:jar:12.0.27:compile
   |  \- org.eclipse.jetty.http2:jetty-http2-common:jar:12.0.27:compile
   |     \- org.eclipse.jetty.http2:jetty-http2-hpack:jar:12.0.27:compile
   +- com.fasterxml.jackson.core:jackson-databind:jar:2.20.1:runtime
   +- com.fasterxml.jackson.core:jackson-annotations:jar:2.20:compile
   +- com.fasterxml.jackson.core:jackson-core:jar:2.20.1:runtime
   +- org.slf4j:slf4j-api:jar:2.0.17:compile
   +- org.eclipse.jetty.http2:jetty-http2-client-transport:jar:12.0.27:runtime
   +- org.eclipse.jetty:jetty-http:jar:12.0.27:compile
   +- org.eclipse.jetty:jetty-client:jar:12.0.27:runtime
   +- org.eclipse.jetty:jetty-util:jar:12.0.27:compile
   +- org.eclipse.jetty:jetty-io:jar:12.0.27:compile
   +- org.slf4j:jcl-over-slf4j:jar:2.0.17:runtime
   \- org.eclipse.jetty:jetty-alpn-java-client:jar:12.0.27:runtime

And this is after

org.example:testsolrj:jar:1.0-SNAPSHOT
\- org.apache.solr:solr-solrj:jar:11.0.0-SNAPSHOT:compile
   +- org.apache.solr:solr-api:jar:11.0.0-SNAPSHOT:compile
   |  +- io.swagger.core.v3:swagger-annotations-jakarta:jar:2.2.22:compile
   |  +- jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0:runtime
   |  \- org.semver4j:semver4j:jar:6.0.0:runtime
   |     \- org.jspecify:jspecify:jar:1.0.0:runtime
   +- com.fasterxml.jackson.core:jackson-databind:jar:2.20.1:runtime
   +- com.fasterxml.jackson.core:jackson-annotations:jar:2.20:compile
   +- com.fasterxml.jackson.core:jackson-core:jar:2.20.1:runtime
   +- org.slf4j:slf4j-api:jar:2.0.17:runtime
   \- org.slf4j:jcl-over-slf4j:jar:2.0.17:runtime

This comment was marked as resolved.

Copy link
Contributor

@dsmiley dsmiley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for getting this across the line! If I had known 10.0 RC would be in 2026, I'd have done it.

Just some minor feedback. The use of "Object" where you commented is fine.

@janhoy janhoy marked this pull request as ready for review January 8, 2026 11:11
@janhoy janhoy requested a review from jdyer1 January 9, 2026 18:23
@janhoy
Copy link
Contributor Author

janhoy commented Jan 9, 2026

I'm ok with having this in all in one PR, but if folks feel strongly about it we could split out the refactoring of ConcurrentUpdateBaseSolrClient as an independent preparatory PR..

@janhoy janhoy force-pushed the SOLR-17161-separate-jetty-solrj branch from fdde6a0 to 6791fd9 Compare January 11, 2026 20:28
@janhoy
Copy link
Contributor Author

janhoy commented Jan 11, 2026

I added ref-guide docs including mention of the new artifact in major-changes-in-solr-10.
Also found an omission, the new maven artifact was never published, fixed by adding to published array in defaults-maven.gradle. Tested in a mini test maven project after mavenToLocalRepo.

@janhoy
Copy link
Contributor Author

janhoy commented Jan 12, 2026

I'm trying to silence jwt-auth module's complaints about jackson-databind. I've tried an explicit add of implementation libs.fasterxml.jackson.core.databind but then the builds complains about unusedDeclaredArtifacts com.fasterxml.jackson.core:jackson-databind:2.20.1@jar. If I declare it as permitUnusedDeclared, then --write-locks complains about Could not resolve all files for configuration ':solr:modules:jwt-auth:permitUnusedDeclared'. Could not find com.fasterxml.jackson.core:jackson-databind..

jwt-auth does not really use jackson in runtime, only transitively in tests. It does use org.apache.solr.common.annotation.JsonProperty runtime though.

@janhoy janhoy merged commit 38c56e7 into apache:main Jan 12, 2026
7 checks passed
@janhoy janhoy deleted the SOLR-17161-separate-jetty-solrj branch January 12, 2026 20:19
janhoy added a commit that referenced this pull request Jan 12, 2026
Co-authored-by: Kevin Risden <[email protected]>
Co-authored-by: David Smiley <[email protected]>
(cherry picked from commit 38c56e7)
janhoy added a commit that referenced this pull request Jan 12, 2026
Co-authored-by: Kevin Risden <[email protected]>
Co-authored-by: David Smiley <[email protected]>

(cherry picked from commit 38c56e7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants